﻿using System.ComponentModel;
using Utility;
using Utility.Enum;

namespace Model.OverallAtuhModel
{
    /// <summary>
    /// 按钮输出模型
    /// </summary>
    public class SysButtonDataOutPut
    {
        /// <summary>
        /// 按钮id
        /// </summary>
        [Description("按钮id")]
        public string? ButtonId { get; set; }

        /// <summary>
        /// 按钮样式id
        /// </summary>
        [Description("按钮样式id")]
        public string? ButtonStyleId { get; set; }

        /// <summary>
        /// 按钮类型
        /// </summary>
        [Description("按钮类型")]
        public int ButtonRoleType { get; set; }

        /// <summary>
        /// 按钮类型描述
        /// </summary>
        [Description("按钮类型描述")]
        public string ButtonRoleTypeStr => EnumHelper.GetDescription((ButtonRoleTypeEnum)ButtonRoleType);

        /// <summary>
        /// 菜单id
        /// </summary>
        [Description("菜单id")]
        public string? MenuId { get; set; }

        /// <summary>
        /// 公司key
        /// </summary>
        [Description("公司key")]
        public string? CorporationKey { get; set; }

        /// <summary>
        /// 公司名称
        /// </summary>
        [Description("公司名称")]
        public string? CorporationName { get; set; }

        /// <summary>
        /// 系统Key
        /// </summary>
        [Description("系统Key")]
        public string? SystemKey { get; set; }

        /// <summary>
        /// 系统名称
        /// </summary>
        [Description("系统名称")]
        public string? SystemName { get; set; }

        /// <summary>
        /// 按钮名称
        /// </summary>
        [Description("按钮名称")]
        public string? ButtonName { get; set; }

        /// <summary>
        /// 按钮事件key
        /// </summary>
        [Description("按钮事件key")]
        public string? ButtonKey { get; set; }

        /// <summary>
        /// 所属菜单
        /// </summary>
        [Description("所属菜单")]
        public string? MenuName { get; set; }

        /// <summary>
        /// 样式名称
        /// </summary>
        [Description("样式名称")]
        public string? ButtonStyleName { get; set; }

        /// <summary>
        /// 图标
        /// </summary>
        [Description("按钮图标")]
        public string? Icon { get; set; }

        /// <summary>
        /// 按钮大小  lg sm xs
        /// </summary>
        [Description("按钮大小")]
        public string? Size { get; set; }

        /// <summary>
        /// 按钮颜色
        /// </summary>
        [Description("按钮颜色")]
        public string? Color { get; set; }

        /// <summary>
        /// 自定义文本颜色
        /// </summary>
        [Description("自定义文本颜色")]
        public string? TextColor { get; set; }

        /// <summary>
        /// 按钮类型
        /// </summary>
        [Description("按钮类型")]
        public string? Types { get; set; }

        /// <summary>
        /// 是否文字按钮
        /// </summary>
        [Description("是否文字按钮")]
        public bool IsText { get; set; }

        /// <summary>
        /// 是否圆角按钮
        /// </summary>
        [Description("是否圆角按钮")]
        public bool IsRound { get; set; }

        /// <summary>
        /// 是否为圆形按钮
        /// </summary>
        [Description("是否为圆形按钮")]
        public bool IsCircle { get; set; }

        /// <summary>
        /// 是否为朴素按钮
        /// </summary>
        [Description("是否为朴素按钮")]
        public bool IsPlain { get; set; }

        /// <summary>
        /// 是否链接按钮
        /// </summary>
        [Description("是否链接按钮")]
        public bool IsLink { get; set; }

        /// <summary>
        /// 是否禁用按钮
        /// </summary>
        [Description("是否禁用按钮")]
        public bool IsDisabled { get; set; }

        /// <summary>
        /// 规则ID
        /// </summary>
        [Description("规则ID")]
        public string? RuleId { get; set; }

        /// <summary>
        /// 解析后的规则
        /// </summary>
        [Description("解析后的规则")]
        public string? AnalysisRule { get; set; }

        /// <summary>
        /// 规则是否启用
        /// </summary>
        [Description("规则是否启用")]
        public bool RuleIsOpen { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        [Description("创建时间")]
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建人员key
        /// </summary>
        [Description("创建人员key")]
        public string? CreateUser { get; set; }

        /// <summary>
        /// 创建人姓名
        /// </summary>
        [Description("创建人姓名")]
        public string? UserName { get; set; }

        /// <summary>
        /// 排序
        /// </summary>
        [Description("排序")]
        public int OrderBy { get; set; }

    }
}
